1
イテレータによる統合的なナビゲーション
AI037Lesson 6
00:00

広大な風景を探索していると想像してください。直線的な高速道路( vector)を走行している場合や、複雑に曲がる森の道( list)を歩いている場合でも、万能な地図が必要です。C++では、その地図が イテレータです。

汎用プログラミングの架け橋

イテレータは、コンテナ内の要素をナビゲートするための汎用的なメカニズムとして機能し、アルゴリズムとデータ構造の間の橋渡し役を果たします。一貫したインターフェース(beginend)を使用することで、C++は 汎用プログラミングを実現します。これにより、プログラムが下層のメモリ配置を知らなくても、さまざまなコレクションに対して同じロジックを適用できます。

⚠️ イテレータ無効化: 重大:イテレータを使ってコンテナを走査するループでは、そのコンテナに要素を追加してはいけません。そうすると、既存のイテレータが「古くなった」(無効化された)状態になり、未定義動作やプログラムのクラッシュを引き起こす可能性があります。
's''o''m''e'begin()end()(終端外)

標準操作

begin 」は最初の要素へのイテレータを返し、一方で endセンチネル 最後の要素の1つ先を表すもので、存在します。

  • *iter:要素にアクセスするためにデリファレンスします。
  • ++iter--iter:移動操作です。
  • ==!=:位置を確認するための等値演算子です。
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>